# !/usr/bin/env python
# -*- coding: utf-8 -*-
# ------------------------------
''''''

# 导包
import asyncio

'''
了解事件循环基本步骤
'''
async def func():      # 当代码循环到这里会在内部生成一个协程对象而这个协程对象指向这个方法
    print('----1-----')

if __name__ == '__main__':
    '''
    之前版本
    '''
    # 1创建事件循环得到事件循环对象
    loop = asyncio.get_event_loop()
    # 给循环事件加入任务
    loop.run_until_complete(func())

async def func2():
    print('-----2----')

if __name__ == '__main__':
    '''
    新版本
    '''
    # 创建事件循环并加入任务
    asyncio.run(func2())
    # python3.7开始有的，
    # 而这个括号里要传的参数数是协程对象，

    # 而另一种理解是在调用时生成一个协程对象，就像类创建实例对象一样

    # 还有一种理解就是把协程方法的调用直接传给run 当开始事件循环的时
    # 候循环列表里装的是，协程方法的调用
    list = [func(), func()]
    for i in list:
        print(i)
    '''
    <coroutine object func at 0x000002967E140CC8>
    <coroutine object func at 0x000002967E1402C8>
    sys:1: RuntimeWarning: coroutine 'func' was never awaited  # 警告的原因并没用协程的方法运行
    '''
    # 事实证明列表里可以存放方法的调用